CC := gcc  # 指定编译器
CFLAGS :=-g -o0 -Wall # 指定编译选项 程序不做优化

log:=thirdparty/log.c thirdparty/log.h
# $@ 表示目标(在这里就是test_log) $^ 表示前置依赖(在这里就是test_log.c log.c log.h)
# -Ithirdparty 表示头文件路径,表示前置依赖可能在thirdparty目录下
test_log:test/test_log.c $(log)
	-$(CC) $(CFLAGS) -o $@ $^ -Ithirdparty 
	./$@
	rm -f $@

json:=thirdparty/cJSON.c thirdparty/cJSON.h
test_json:test/test_json.c $(json)
	-$(CC) $(CFLAGS) -o $@ $^ -Ithirdparty 
	./$@
	rm -f $@

app_com:=app/app_com.c app/app_com.h
test_com:test/test_com.c $(app_com)
	-$(CC) $(CFLAGS) -o $@ $^ -Iapp
	./$@
	rm -f $@

app_message:=app/app_message.c app/app_message.h
test_message:test/test_message.c $(app_message) $(app_com) $(log) $(json)
	-$(CC) $(CFLAGS) -o $@ $^ -Iapp -Ithirdparty
	./$@
	rm -f $@

# -lpaho-mqtt3c 为第三方的mqtt库(既不是标准库也不是自己写的)
# -lssl -lcrypto 为openssl库,若使用ssl协议,需在编译时链接OpenSSL库
app_mqtt:=app/app_mqtt.c app/app_mqtt.h
test_mqtt:test/test_mqtt.c $(app_mqtt) $(log)
	-$(CC) $(CFLAGS) -o $@ $^ -Iapp -Ithirdparty -lpaho-mqtt3c 
	./$@
	rm -f $@

app_pool:=app/app_pool.c app/app_pool.h
test_pool:test/test_pool.c $(app_pool)
	-$(CC) $(CFLAGS) -o $@ $^ -Iapp
	./$@
	rm -f $@
